package com.gitee.dolt.boot.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.function.BiConsumer;
import java.util.function.Consumer;

/**
 * @author LYH
 */
public interface SuperService<T> extends IService<T> {

    /**
     * 根据id修改 entity 的所有字段
     *
     * @param entity
     * @return
     */
    boolean updateAllById(T entity);


    /**
     * 分页处理数据，主键必须是有序的
     *
     * @param size        每页大小
     * @param fillQuery   填充查询
     * @param dataHandler 处理器
     * @return 最后提交记录主键值
     */
    Object handlerByPage(long size, Consumer<QueryWrapper<T>> fillQuery, BiConsumer<Object, List<T>> dataHandler);

    Object handlerByPage(long size, Consumer<QueryWrapper<T>> fillQuery,
                         String fieldColumn, String fieldProperty, BiConsumer<Object, List<T>> dataHandler);
}
